home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / GapVector.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.0 KB  |  146 lines

  1. package javax.swing.text;
  2.  
  3. import java.io.Serializable;
  4.  
  5. abstract class GapVector implements Serializable {
  6.    private Object array;
  7.    // $FF: renamed from: g0 int
  8.    private int field_0;
  9.    // $FF: renamed from: g1 int
  10.    private int field_1;
  11.  
  12.    public GapVector() {
  13.       this(10);
  14.    }
  15.  
  16.    public GapVector(int var1) {
  17.       this.array = this.allocateArray(var1);
  18.       this.field_0 = 0;
  19.       this.field_1 = var1;
  20.    }
  21.  
  22.    protected abstract Object allocateArray(int var1);
  23.  
  24.    void close(int var1, int var2) {
  25.       if (var2 != 0) {
  26.          int var3 = var1 + var2;
  27.          int var4 = this.field_1 - this.field_0 + var2;
  28.          if (var3 <= this.field_0) {
  29.             if (this.field_0 != var3) {
  30.                this.shiftGap(var3);
  31.             }
  32.  
  33.             this.shiftGapStartDown(this.field_0 - var2);
  34.          } else if (var1 >= this.field_0) {
  35.             if (this.field_0 != var1) {
  36.                this.shiftGap(var1);
  37.             }
  38.  
  39.             this.shiftGapEndUp(this.field_0 + var4);
  40.          } else {
  41.             this.shiftGapStartDown(var1);
  42.             this.shiftGapEndUp(this.field_0 + var4);
  43.          }
  44.  
  45.       }
  46.    }
  47.  
  48.    protected final Object getArray() {
  49.       return this.array;
  50.    }
  51.  
  52.    protected abstract int getArrayLength();
  53.  
  54.    protected final int getGapEnd() {
  55.       return this.field_1;
  56.    }
  57.  
  58.    protected final int getGapStart() {
  59.       return this.field_0;
  60.    }
  61.  
  62.    int open(int var1, int var2) {
  63.       int var3 = this.field_1 - this.field_0;
  64.       if (var2 == 0) {
  65.          if (var1 > this.field_0) {
  66.             var1 += var3;
  67.          }
  68.  
  69.          return var1;
  70.       } else {
  71.          this.shiftGap(var1);
  72.          if (var2 >= var3) {
  73.             this.shiftEnd(this.getArrayLength() - var3 + var2);
  74.             int var10000 = this.field_1 - this.field_0;
  75.          }
  76.  
  77.          this.field_0 += var2;
  78.          return var1;
  79.       }
  80.    }
  81.  
  82.    protected void replace(int var1, int var2, Object var3, int var4) {
  83.       byte var5 = 0;
  84.       if (var4 == 0) {
  85.          this.close(var1, var2);
  86.       } else {
  87.          if (var2 > var4) {
  88.             this.close(var1 + var4, var2 - var4);
  89.          } else {
  90.             int var6 = var4 - var2;
  91.             int var7 = this.open(var1 + var2, var6);
  92.             System.arraycopy(var3, var2, this.array, var7, var6);
  93.             var4 = var2;
  94.          }
  95.  
  96.          System.arraycopy(var3, var5, this.array, var1, var4);
  97.       }
  98.    }
  99.  
  100.    void resize(int var1) {
  101.       Object var2 = this.allocateArray(var1);
  102.       System.arraycopy(this.array, 0, var2, 0, Math.min(var1, this.getArrayLength()));
  103.       this.array = var2;
  104.    }
  105.  
  106.    protected void shiftEnd(int var1) {
  107.       int var2 = this.getArrayLength();
  108.       int var3 = this.field_1;
  109.       int var4 = var2 - var3;
  110.       int var5 = (var1 + 1) * 2;
  111.       int var6 = var5 - var4;
  112.       this.resize(var5);
  113.       this.field_1 = var6;
  114.       if (var4 != 0) {
  115.          System.arraycopy(this.array, var3, this.array, var6, var4);
  116.       }
  117.  
  118.    }
  119.  
  120.    protected void shiftGap(int var1) {
  121.       if (var1 != this.field_0) {
  122.          int var2 = this.field_0;
  123.          int var3 = var1 - var2;
  124.          int var4 = this.field_1;
  125.          int var5 = var4 + var3;
  126.          int var10000 = var4 - var2;
  127.          this.field_0 = var1;
  128.          this.field_1 = var5;
  129.          if (var3 > 0) {
  130.             System.arraycopy(this.array, var4, this.array, var2, var3);
  131.          } else if (var3 < 0) {
  132.             System.arraycopy(this.array, var1, this.array, var5, -var3);
  133.          }
  134.  
  135.       }
  136.    }
  137.  
  138.    protected void shiftGapEndUp(int var1) {
  139.       this.field_1 = var1;
  140.    }
  141.  
  142.    protected void shiftGapStartDown(int var1) {
  143.       this.field_0 = var1;
  144.    }
  145. }
  146.